1. Field of the Invention
The invention relates to control of robots, and specifically to organization and execution of instructions for humanoid robots.
2. Description of Background Art
Conventionally, humanoid robots have been controlled using robot instructions (code) customized for a particular configuration of humanoid robot. Robot-specific code is a natural initial approach to robot control, as it allows a limited set of programs to be coded quickly, supporting early-stage proof-of-concept and debugging efforts. However, as humanoid robot control matures, exclusive reliance on robot-specific code threatens to impede the goal of creating more sophisticated task behavior in humanoid robots having frequently changing hardware design. Humanoid robots could be more efficiently developed if an existing code base from a previous robot could be used in a new robot, if the capabilities of a robot could be flexibly extended, and if capabilities learned by a first robot could be transferred to a second robot.
To take advantage of an existing code base, it is desirable that humanoid robot instructions be easily portable from one robot to another. One approach is to design new humanoid robots to be able to operate on instructions written for previous robots. However, such a backwards-compatibility requirement would itself impede the development of humanoid robots, as robot designers would need to support outdated legacy instructions, introducing serious constraints on architecture and design changes.
Furthermore, to facilitate rapid learning of new capabilities by robots, it is desirable to have a method of executing on a new robot instructions obtained from a different robot. One approach is to transfer learned robot-specific instructions directly to the new robot. However, by definition, robot-specific instructions cannot be successfully executed on a new model of robot having different hardware designs, severely limiting the ability of a first generation of robots to pass their acquired capabilities to a second generation of robots with different hardware configuration.
Therefore, what is needed is a framework for humanoid robot instructions that allows portability of instructions, and supports transfer of learned capabilities from one robot to another.